package com.jinmdz.fmis.api.api.model.funeral.agreement;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.jinmdz.fmis.core.annotation.AnDict;
import com.jinmdz.fmis.core.base.BaseBean;
import com.jinmdz.fmis.core.constant.EDictCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;

/**
 * 服务协议单加载数据
 *
 * @author LiCongLu
 * @date 2020-04-10 09:54
 */
@ApiModel(value = "服务协议单加载数据", description = "服务协议单加载数据")
public class ServiceAgreementItem extends BaseBean {

    /**
     * 登记时间，即殡葬业务添加时间
     */
    @ApiModelProperty(value = "登记时间，即殡葬业务添加时间", name = "businessTime", position = 1)
    @JsonFormat(pattern = "yyyy 年 MM 月 dd 日 HH 时 mm 分")
    private Date businessTime;

    /**
     * 业务编码
     */
    @ApiModelProperty(value = "业务编码", name = "businessCode", position = 2)
    private String businessCode;

    /**
     * 家属姓名
     */
    @ApiModelProperty(value = "家属姓名", name = "memberName", position = 3)
    private String memberName;

    /**
     * 家属手机电话
     */
    @ApiModelProperty(value = "家属手机电话", name = "mobilePhone", position = 4)
    private String mobilePhone;

    /**
     * 逝者姓名
     */
    @ApiModelProperty(value = "逝者姓名", name = "deadName", position = 5)
    private String deadName;

    /**
     * 逝者性别编码
     */
    @ApiModelProperty(value = "逝者性别编码", name = "deadGenderCode", position = 6)
    @JsonIgnore
    private Integer deadGenderCode;

    /**
     * 逝者性别编码
     */
    @ApiModelProperty(value = "逝者性别编码", name = "deadGender", position = 7)
    @AnDict(dict = EDictCode.SEX, ref = "deadGenderCode")
    private String deadGender;

    /**
     * 年龄类型编码
     */
    @ApiModelProperty(value = "年龄类型编码", name = "deadAgeTypeCode", position = 8)
    @JsonIgnore
    private Integer deadAgeTypeCode;

    /**
     * 年龄类型
     */
    @ApiModelProperty(value = "年龄类型", name = "deadAgeType", position = 9)
    @AnDict(dict = EDictCode.AGE_TYPE, ref = "deadAgeTypeCode")
    private String deadAgeType;

    /**
     * 逝者年龄
     */
    @ApiModelProperty(value = "逝者年龄", name = "deadAge", position = 10)
    private String deadAge;

    /**
     * 生前住址
     */
    @ApiModelProperty(value = "生前住址", name = "beforeDeathAddress", position = 11)
    private String beforeDeathAddress;

    /**
     * 服务项目费用清单
     */
    @ApiModelProperty(value = "服务项目费用清单", name = "chargeItems", position = 12)
    private ArrayList<ServiceAgreementChargeItem> chargeItems;

    /**
     * 费用总金额
     */
    @ApiModelProperty(value = "费用总金额", name = "itemTotalCharge", position = 13)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal itemTotalCharge;

    /**
     * 优惠总金额
     */
    @ApiModelProperty(value = "优惠总金额", name = "discountTotalCharge", position = 14)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal discountTotalCharge;

    /**
     * 惠民总金额
     */
    @ApiModelProperty(value = "惠民总金额", name = "benefitTotalCharge", position = 15)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal benefitTotalCharge;

    /**
     * 实际收费总金额
     */
    @ApiModelProperty(value = "实际收费总金额", name = "realityTotalCharge", position = 16)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal realityTotalCharge;

    /**
     * 实际收费总金额汉字大写
     */
    @ApiModelProperty(value = "实际收费总金额汉字大写", name = "realityTotalChargeText", position = 17)
    private String realityTotalChargeText;

    /**
     * 优惠服务项目费用清单
     */
    @ApiModelProperty(value = "优惠服务项目费用清单", name = "discountChargeItems", position = 18)
    private ArrayList<ServiceAgreementChargeItem> discountChargeItems;

    /**
     * 惠民服务项目费用清单
     */
    @ApiModelProperty(value = "惠民服务项目费用清单", name = "benefitChargeItems", position = 19)
    private ArrayList<ServiceAgreementChargeItem> benefitChargeItems;

    public Date getBusinessTime() {
        return businessTime;
    }

    public ServiceAgreementItem setBusinessTime(Date businessTime) {
        this.businessTime = businessTime;
        return this;
    }

    public String getBusinessCode() {
        return businessCode;
    }

    public ServiceAgreementItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public String getMemberName() {
        return memberName;
    }

    public ServiceAgreementItem setMemberName(String memberName) {
        this.memberName = memberName;
        return this;
    }

    public String getMobilePhone() {
        return mobilePhone;
    }

    public ServiceAgreementItem setMobilePhone(String mobilePhone) {
        this.mobilePhone = mobilePhone;
        return this;
    }

    public String getDeadName() {
        return deadName;
    }

    public ServiceAgreementItem setDeadName(String deadName) {
        this.deadName = deadName;
        return this;
    }

    public Integer getDeadGenderCode() {
        return deadGenderCode;
    }

    public ServiceAgreementItem setDeadGenderCode(Integer deadGenderCode) {
        this.deadGenderCode = deadGenderCode;
        return this;
    }

    public String getDeadGender() {
        return deadGender;
    }

    public ServiceAgreementItem setDeadGender(String deadGender) {
        this.deadGender = deadGender;
        return this;
    }

    public Integer getDeadAgeTypeCode() {
        return deadAgeTypeCode;
    }

    public ServiceAgreementItem setDeadAgeTypeCode(Integer deadAgeTypeCode) {
        this.deadAgeTypeCode = deadAgeTypeCode;
        return this;
    }

    public String getDeadAgeType() {
        return deadAgeType;
    }

    public ServiceAgreementItem setDeadAgeType(String deadAgeType) {
        this.deadAgeType = deadAgeType;
        return this;
    }

    public String getDeadAge() {
        return deadAge;
    }

    public ServiceAgreementItem setDeadAge(String deadAge) {
        this.deadAge = deadAge;
        return this;
    }

    public String getBeforeDeathAddress() {
        return beforeDeathAddress;
    }

    public ServiceAgreementItem setBeforeDeathAddress(String beforeDeathAddress) {
        this.beforeDeathAddress = beforeDeathAddress;
        return this;
    }

    public ArrayList<ServiceAgreementChargeItem> getChargeItems() {
        return chargeItems;
    }

    public ServiceAgreementItem setChargeItems(ArrayList<ServiceAgreementChargeItem> chargeItems) {
        this.chargeItems = chargeItems;
        return this;
    }

    public BigDecimal getItemTotalCharge() {
        return itemTotalCharge;
    }

    public ServiceAgreementItem setItemTotalCharge(BigDecimal itemTotalCharge) {
        this.itemTotalCharge = itemTotalCharge;
        return this;
    }

    public BigDecimal getDiscountTotalCharge() {
        return discountTotalCharge;
    }

    public ServiceAgreementItem setDiscountTotalCharge(BigDecimal discountTotalCharge) {
        this.discountTotalCharge = discountTotalCharge;
        return this;
    }

    public BigDecimal getBenefitTotalCharge() {
        return benefitTotalCharge;
    }

    public ServiceAgreementItem setBenefitTotalCharge(BigDecimal benefitTotalCharge) {
        this.benefitTotalCharge = benefitTotalCharge;
        return this;
    }

    public BigDecimal getRealityTotalCharge() {
        return realityTotalCharge;
    }

    public ServiceAgreementItem setRealityTotalCharge(BigDecimal realityTotalCharge) {
        this.realityTotalCharge = realityTotalCharge;
        return this;
    }

    public String getRealityTotalChargeText() {
        return realityTotalChargeText;
    }

    public ServiceAgreementItem setRealityTotalChargeText(String realityTotalChargeText) {
        this.realityTotalChargeText = realityTotalChargeText;
        return this;
    }

    public ArrayList<ServiceAgreementChargeItem> getDiscountChargeItems() {
        return discountChargeItems;
    }

    public ServiceAgreementItem setDiscountChargeItems(ArrayList<ServiceAgreementChargeItem> discountChargeItems) {
        this.discountChargeItems = discountChargeItems;
        return this;
    }

    public ArrayList<ServiceAgreementChargeItem> getBenefitChargeItems() {
        return benefitChargeItems;
    }

    public ServiceAgreementItem setBenefitChargeItems(ArrayList<ServiceAgreementChargeItem> benefitChargeItems) {
        this.benefitChargeItems = benefitChargeItems;
        return this;
    }
}
